#define  _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
#include<set>
using namespace std;

//int main()
//{
//	// 去重+升序排序
//	set<int> s;
//	// 去重+降序排序（给一个大于的仿函数）
//	//set<int, greater<int>> s;
//	s.insert(5);
//	s.insert(2);
//	s.insert(7);
//	s.insert(5);
//
//	//set<int>::iterator it = s.begin();
//	auto it = s.begin();
//	while (it != s.end())
//	{
//		// error C3892: “it”: 不能给常量赋值
//		// *it = 1;
//		cout << *it << " ";
//		++it;
//	}
//	cout << endl;
//
//	// 插入一段initializer_list列表值，已经存在的值插入失败
//	s.insert({ 2,8,3,9 });
//
//	for (auto e : s)
//	{
//		cout << e << " ";
//	}
//	cout << endl;
//
//	set<string> strset = { "sort", "insert", "add" };
//	// 遍历string比较ascll码大小顺序遍历的
//	for (auto& e : strset)
//	{
//		cout << e << " ";
//	}
//	cout << endl;
//
//	return 0;
//}

//int main()
//{
//	set<int> s = { 4,2,7,2,8,5,9 };
//	for (auto e : s)
//	{
//		cout << e << " ";
//	}
//	cout << endl;
//
//	s.erase(s.begin());
//
//	for (auto e : s)
//	{
//		cout << e << " ";
//	}
//	cout << endl;
//
//	// 直接删除x
//	//int x;
//	//cin >> x;
//	//int num = s.erase(x);
//	//if (num == 0)
//	//{
//	//	cout << x << "不存在！" << endl;
//	//}
//
//	//for (auto e : s)
//	//{
//	//	cout << e << " ";
//	//}
//	//cout << endl;
//
//	// 直接查找在利用迭代器删除x
//	int x;
//	cin >> x;
//	auto pos = s.find(x);
//	if (pos != s.end())
//	{
//		s.erase(pos);
//	}
//	else
//	{
//		cout << x << "不存在！" << endl;
//	}
//
//	for (auto e : s)
//	{
//		cout << e << " ";
//	}
//	cout << endl;
//
//	// O(N)
//	auto pos1 = find(s.begin(), s.end(), x);
//	// O(logN)
//	auto pos2 = s.find(x);
//
//	cin >> x;
//	/*auto pos = s.find(x);
//	if (pos != s.end())*/
//	if(s.count(x))
//	{
//		cout << x << "存在！" << endl;
//	}
//	else
//	{
//		cout << x << "不存在！" << endl;
//	}
//
//	return 0;
//}

//int main()
//{
//	std::set<int> myset;
//	for (int i = 1; i < 10; i++)
//		myset.insert(i * 10); // 10 20 30 40 50 60 70 80 90
//
//	for (auto e : myset)
//	{
//		cout << e << " ";
//	}
//	cout << endl;
//
//	// 实现查找到的[itlow,itup)包含[30, 60]区间
//	// 返回 >= 30
//	//auto itlow = myset.lower_bound(30);
//	//// 返回 > 60
//	//auto itup = myset.upper_bound(60);
//
//	//myset.erase(itlow, itup);
//
//	//for (auto e : myset)
//	//{
//	//	cout << e << " ";
//	//}
//	//cout << endl;
//
//	//// 实现查找到的[itlow,itup)包含[35, 65]区间
//	//// 返回 >= 35
//	//auto itlow = myset.lower_bound(35);
//	//// 返回 > 65
//	//auto itup = myset.upper_bound(65);
//
//	//myset.erase(itlow, itup);
//
//	//for (auto e : myset)
//	//{
//	//	cout << e << " ";
//	//}
//	//cout << endl;
//
//	// 实现查找到的[itlow,itup)包含[30, 90]区间
//	auto itlow = myset.lower_bound(30);
//	auto itup = myset.upper_bound(90);
//
//	myset.erase(itlow, itup);
//
//	for (auto e : myset)
//	{
//		cout << e << " ";
//	}
//	cout << endl;
//
//	return 0;
//}

//int main()
//{
//	// 相比set不同的是，multiset是排序，但是不去重
//	multiset<int> s = { 4,2,7,2,4,8,4,5,4,9 };
//	auto it = s.begin();
//	while (it != s.end())
//	{
//		cout << *it << " ";
//		++it;
//	}
//	cout << endl;
//
//	// find返回中序的第一个4
//	auto pos = s.find(4);
//	while (*pos == 4)
//	{
//		cout << *pos << " ";
//		++pos;
//	}
//	cout << endl;
//
//	cout << s.count(4) << endl;
//	cout << s.count(5) << endl;
//	cout << s.count(6) << endl;
//
//	// 删除所有的4
//	//cout << s.erase(4) << endl;
//
//	// 删除中序第一个4
//	pos = s.find(4);
//	if(pos != s.end())
//		s.erase(pos);
//
//	it = s.begin();
//	while (it != s.end())
//	{
//		cout << *it << " ";
//		++it;
//	}
//	cout << endl;
//
//	return 0;
//}

////////////////////////////////////////////////////////
#include<map>

int main()
{
	map<string, string> dict;

	pair<string, string> kv1("sort", "排序");
	dict.insert(kv1);
	dict.insert(pair<string, string>("left", "左边"));
	dict.insert(make_pair("left", "左边"));
	dict.insert({ "right", "右边" });

	//map<string, string>::iterator it = dict.begin();
	auto it = dict.begin();
	while (it != dict.end())
	{
		//cout << (*it).first <<":" << (*it).second <<endl;
		cout << it->first << ":" << it->second << endl;

		++it;
	}
	cout << endl;

	for (auto& e : dict)
	{
		cout << e.first << ":" << e.second << endl;
	}
	cout << endl;

	string str;
	while (cin >> str)
	{
		auto ret = dict.find(str);
		if (ret != dict.end())
		{
			cout << "->" << ret->second << endl;
		}
		else
		{
			cout << "无此单词，请重新输入" << endl;
		}
	}

	return 0;
}

//int main()
//{
//	// 21:08
//	string arr[] = { "苹果", "西瓜", "苹果", "西瓜", "苹果", "苹果", "西瓜","苹果", "香蕉", "苹果", "香蕉" };
//	map<string, int> countMap;
//	for (auto& str : arr)
//	{
//		/*auto pos = countMap.find(str);
//		if (pos != countMap.end())
//		{
//			pos->second++;
//		}
//		else
//		{
//			countMap.insert({ str, 1 });
//		}*/
//		countMap[str]++;
//	}
//
//	for (auto& e : countMap)
//	{
//		cout << e.first << ":" << e.second << endl;
//	}
//	cout << endl;
//	
//	return 0;
//}